МІНІСТЕРСТВО ОСВІТИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ "ЛЬВІВСЬКА ПОЛІТЕХНІКА"
Звіт
до лабораторної роботи №1
Реалізація простих консольних програм мовою C#
з курсу:
"ОПЕРАЦІЙНІ СИСТЕМИ"
Мета роботи: навчитися реалізувати прості консольні програми мовою С# у середовищі Visual Studio
Завдання:
Ввід значень кубічної матриці організувати з клавіатури у порядку зростання індексів: А 0,0,0; А 0,0,1; А 0,0,2; … А 0,1,0; …
Кубічна матриця має бути представлена типом масиву С# зі структурою, вказаною у варіанті завдання.
Сортування елементів матриці здійснюється у площинах, зазначених у варіанті завдання, за аналогією гри «15». Метод сортування також зазначений у варіанті завдання.
Для окремо зазначених площин кубічної матриці необхідно знайти значення додаткового вектора .
Сортування та пошук додаткового вектора організувати в окремих функціях.
Вивести на друк посортовані площини кубічної матриці та значення додаткового вектора.
A 4×3×5 → С# [ ][ , ] ;
горизонтальна площина – метод вибору – за зростанням;
вектор добутків синусів елементів фронтальних площин.
Список ідентифікаторів, констант, змінних, методів, використаних у програмі та їх пояснення:
RandNum – змінна для генератора псевдовипадкових чисел;
float [][,] ip – вхідний параметр функції;
float [] op – параметр, який функція повертає;
i,j,k,z – лічильники;
SinMultiple () - Функція обчислення вектора добутків синусів елементів фронтальних площин;
FillByRandom () - Функція ініціалізації елементів масиву псевдовипадковими значеннями;
Out () - Функція виводу горизонтальних площин тривимірного масиву на консоль;
MatrixToString () Функція перетворення тривимірного масиву у стрічку;
Sort () - Функція сортування;
StringToMatrix () - Функція перетворення стрічкового масиву у тривимірний;
Main() – головна функція;
(float) () – перетворення типу числа в тип з плаваючою комою;
Console.WriteLine("Початковий масив") – виведення в консоль;
RandNum.Next( , ) – генерування псевдовипадкового цілого значення із вказаного діапазону;
Текст програми:
using System;
using System.Collections.Generic;
using System.Text;
namespace Array
{
class Program
{
static System.Random RandNum = new System.Random(); //Виділення пам’яті для генератора псевдовипадкових чисел
//Функція обчислення вектора добутків синусів елементів фронтальних площин
static float [] SinMultiple (float [][,] ip)
{
float[] op = new float[4] {1,1,1,1};
for (int k = 0; k < 4; k++)
for (int i = 0; i < 3; i++)
for (int j = 0; j < 5; j++)
op[k] = (float) (op[k] * Math.Sin(ip[k][i,j]));
return (op);
}
//Функція ініціалізації елементів масиву псевдовипадковими значеннями
static void FillByRandom(float [][,] ip)
{
for (int k = 0; k < 4; k++)
for (int i = 0; i < 3; i++)
for (int j = 0; j < 5; j++)
ip[k][i, j] = (float)(RandNum.Next(100, 999)) / 10;
}
//Функція виводу горизонтальних площин тривимірного масиву на консоль
static void Out(float [][,] ip)
{
for (int i = 0; i < 3; i++)
{
for (int k = 0; k < 4; k++)
{
for (int j = 0; j < 5; j++)
Console.Write(ip[k][i, j] + "\t");
Console.WriteLine();
}
Console.WriteLine();
}
}
//Функція перетворення тривимірного масиву у стрічку
static float [][] MatrixToString(float[][,] ip)
{
int z;
float [][] op = new float [3][];
op [0] = new float [20];
op [1] = new float [20];
op [2] = new float [20];
for (int i = 0; i < 3; i++)
{
z=0;
for (int k = 0; k < 4; k++)
for (int j = 0; j < 5; j++)
{
...